﻿using System;
using System.Collections.Generic;
using Sinacor.UI.Bovespa.Ordens.Communication.Bovespa.Ordens.Ordem;
using Sinacor.Infra.Common;
using Sinacor.Infra.UI.Common;

namespace Sinacor.UI.Bovespa.Ordens.Communication.Translator
{
    class TranslatorCancelarOrdemDistribuida : BaseTranslator<
        CancelarOrdemDistribuida,
        Model.Parameter.CancelarOrdemDistribuidaRequest,
        List<CancelarOrdemDistribuida>,
        ModelCollection<Model.Parameter.CancelarOrdemDistribuidaRequest>
        >
    {

        public override CancelarOrdemDistribuida Translate(Sinacor.UI.Bovespa.Ordens.Model.Parameter.CancelarOrdemDistribuidaRequest from)
        {
            if (from == null) return null;

            CancelarOrdemDistribuida to = new CancelarOrdemDistribuida();

            to.CodigoFilhote = from.CodigoFilhote;
            to.DataOrdem = from.DataOrdem;
            to.DataPregao = from.DataPregao;
            to.NumeroConjunto = from.NumeroConjunto;
            to.NumeroOrdem = from.NumeroOrdem;
            to.NumeroOrdemSubSequencia = from.NumeroOrdemSubSequencia;
            to.TipoCancelamento = from.TipoCancelamento;
            to.TipoDistribuicao = from.TipoDistribuicao;

            to.CodigoBroker = from.CodigoBroker;
            to.Bolsa = from.Bolsa;
            to.Titulo = from.Titulo;
            to.NumeroNegocio = from.NumeroNegocio;

            switch (from.NaturezaOperacao)
            {
                case Model.Enum.TipoNaturezaOperacao.Compra:
                    to.NaturezaOperacao = TipoNaturezaOperacao.Compra;
                    break;
                case Model.Enum.TipoNaturezaOperacao.Venda:
                    to.NaturezaOperacao = TipoNaturezaOperacao.Venda;
                    break;
            }

            return to;
        }

    }
}
